package cn.stimd.spring.beans.factory.support;

import cn.stimd.spring.beans.factory.config.BeanDefinitionHolder;
import cn.stimd.spring.beans.factory.config.DependencyDescriptor;

/**
 * Created by Stimd
 * 项目地址：https://gitee.com/stimd/spring-wheel
 * 公众号：Java编程探微
 */
public interface AutowireCandidateResolver {
    /**
     * 检查指定Bean是否为依赖注入的候选项
     */
    boolean isAutowireCandidate(BeanDefinitionHolder holder, DependencyDescriptor descriptor);

    /**
     * 基本上是为@Value注解量身定做
     */
    Object getSuggestedValue(DependencyDescriptor descriptor);


    /**
     * 检查依赖描述符是否是required
     */
    boolean isRequired(DependencyDescriptor descriptor);
}
